[ARM64] 破解华为ExaGear,让它可以在飞腾CPU上运行

您所在的位置:网站首页 exagear failed error=10 [ARM64] 破解华为ExaGear,让它可以在飞腾CPU上运行

[ARM64] 破解华为ExaGear,让它可以在飞腾CPU上运行

2024-01-04 01:29| 来源: 网络整理| 查看: 265

把这个程序编译成arm64,然后对其进行调试,就能知道获取CPU型号的汇编指令是什么样的了。然后去exagear二进制里搜相关指令。

https://blog.csdn.net/buknow/article/details/107721094

搜到之后,还需要思考一些事情。问题在于:修改空间很少,函数调用后马上就返回了,上下都没有空闲空间。这导致你几乎只有一条指令的修改空间,但CPU型号寄存器的内容很长(32位),无法用立即数表示,所以塞不进单条指令。

于是无法修改获取型号的指令,需要修改对型号进行运算的指令,也就是02 7C 18 53,它是从结果寄存器中截取CPU厂商ID的指令,厂商ID很小,可以用立即数表示。于是只需要把这条指令改成立即数赋值指令(02 09 80 D2)即可,该指令把结果设为华为的厂商ID,于是通过了校验。

注意:二进制里有两处02 7C 18 53,需要修改的是第二处。

此外,ida pro可以把02 7C 18 53这样的机器码显示成ARM汇编指令,这样就更容易理解。不过我没打开ida pro,所以没有截图。如果你感兴趣,可以自己用ida pro打开/opt/exagear/bin/ubt_x64a64_al和/opt/exagear/bin/ubt_x32a64_al进行查看。

备注:ida pro似乎没有直接修改二进制文件的功能,所以搞清楚怎么改之后,还要用十六进制编辑器进行实际的修改,推荐使用HxD。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3